Hibernate হল একটি শক্তিশালী Object-Relational Mapping (ORM) ফ্রেমওয়ার্ক, যা Java অ্যাপ্লিকেশনের জন্য ডেটাবেসের সাথে সংযোগ স্থাপন এবং ডেটাবেস অপারেশনগুলো সহজ করে তোলে। Hibernate ডেটাবেস অপারেশনগুলো Java objects এর মাধ্যমে সম্পাদনা করে, যার ফলে ডেটাবেসের জন্য SQL কোড লেখার প্রয়োজন হয় না। H2 Database একটি হালকা, ইন-মেমরি ডেটাবেস, যা Java অ্যাপ্লিকেশনের সাথে সহজে ইন্টিগ্রেট করা যায়। H2 ডেটাবেসটি Hibernate এর সাথে ভালোভাবে কাজ করে, এবং এটি ছোট প্রকল্প, টেস্টিং, বা ডেভেলপমেন্ট পরিবেশে ব্যবহৃত হতে পারে।
এখানে H2 Database এবং Hibernate এর ইন্টিগ্রেশন করার ধাপগুলো ব্যাখ্যা করা হলো।
প্রথমে আপনার Maven বা Gradle প্রকল্পে Hibernate এবং H2 ডিপেনডেন্সি যোগ করতে হবে।
Maven এর জন্য:
<dependencies>
<!-- H2 Database Dependency -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.200</version>
</dependency>
<!-- Hibernate Core Dependency -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.6.7.Final</version>
</dependency>
<!-- Hibernate Validator Dependency -->
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.2.0.Final</version>
</dependency>
</dependencies>
Gradle এর জন্য:
dependencies {
implementation 'com.h2database:h2:1.4.200'
implementation 'org.hibernate:hibernate-core:5.6.7.Final'
implementation 'org.hibernate.validator:hibernate-validator:6.2.0.Final'
}
Hibernate কনফিগারেশন ফাইল hibernate.cfg.xml এ H2 ডেটাবেসের সংযোগের তথ্য প্রদান করতে হবে। এই ফাইলটি সাধারনত src/main/resources
ফোল্ডারে রাখা হয়।
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- JDBC Database connection settings -->
<property name="hibernate.dialect">org.hibernate.dialect.H2Dialect</property>
<property name="hibernate.connection.driver_class">org.h2.Driver</property>
<property name="hibernate.connection.url">jdbc:h2:~/test;AUTO_SERVER=TRUE</property>
<property name="hibernate.connection.username">sa</property>
<property name="hibernate.connection.password"></property>
<!-- Specify the JDBC driver used -->
<property name="hibernate.hbm2ddl.auto">update</property> <!-- update, create, create-drop -->
<property name="hibernate.show_sql">true</property> <!-- Show SQL queries in console -->
<!-- Drop and re-create the database on startup -->
<property name="hibernate.dialect">org.hibernate.dialect.H2Dialect</property>
<!-- Enable Hibernate's automatic session context management -->
<property name="hibernate.current_session_context_class">thread</property>
<!-- Echo all executed SQL to stdout -->
<property name="hibernate.format_sql">true</property>
<!-- Disable the second-level cache -->
<property name="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<!-- Drop the database schema when the session factory is closed -->
<property name="hibernate.hbm2ddl.auto">update</property>
</session-factory>
</hibernate-configuration>
এই কনফিগারেশনে:
~/test
হল ডেটাবেসের লোকেশন।sa
)।Hibernate ব্যবহার করতে হলে আপনাকে Entity Class তৈরি করতে হবে, যা ডেটাবেসের টেবিলের সাথে ম্যাপ হবে। এই ক্লাসে আপনাকে JPA annotations ব্যবহার করতে হবে, যেমন @Entity
, @Id
, এবং @Column
।
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Column;
@Entity
public class User {
@Id
private int id;
@Column(name = "name")
private String name;
// Getters and setters
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Hibernate এর SessionFactory তৈরি করতে হবে, যা ডেটাবেসের সাথে সংযোগ স্থাপন করবে এবং Session তৈরি করবে।
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtil {
private static SessionFactory factory;
static {
// Creating SessionFactory object
factory = new Configuration().configure("hibernate.cfg.xml").addAnnotatedClass(User.class).buildSessionFactory();
}
public static Session getSession() {
return factory.getCurrentSession();
}
public static void close() {
factory.close();
}
}
ডেটাবেসে ডেটা সন্নিবেশ, আপডেট বা ডিলিট করার জন্য Hibernate ব্যবহার করতে পারেন।
public class Main {
public static void main(String[] args) {
// Get session
Session session = HibernateUtil.getSession();
try {
// Create new User object
User user = new User();
user.setId(1);
user.setName("John Doe");
// Start a transaction
session.beginTransaction();
// Save the User object
session.save(user);
// Commit the transaction
session.getTransaction().commit();
} finally {
// Clean up code
HibernateUtil.close();
}
}
}
Hibernate এবং H2 Database এর ইন্টিগ্রেশন করা খুবই সহজ। Hibernate-এ H2 ডেটাবেসের সাথে কাজ করার জন্য আপনাকে hibernate.cfg.xml কনফিগারেশন ফাইল সেট আপ করতে হবে, H2 ডেটাবেসের জন্য JDBC URL
, ইউজারনেম, পাসওয়ার্ড কনফিগার করতে হবে, এবং Entity ক্লাস তৈরি করতে হবে যা ডেটাবেসের টেবিলের সাথে ম্যাপ করবে। Hibernate ব্যবহার করলে SQL কোড লেখার প্রয়োজন নেই, কারণ Hibernate আপনার জন্য সমস্ত SQL জেনারেট করে, যা ডেটাবেসের সাথে কাজ করতে সহায়ক।
common.read_more